#  File Name: Makefile
#  Author: Jack Wooldridge
#  Date Created: 1/1/2026

CC = g++
PROGRAM = Drivers
FLAGS = -Wall -Wextra -pedantic -o # -o must be last flag
LDLIBS = -lhidapi-libusb
SRCS = $(wildcard *.cpp)
OBJS = $(SRCS:.cpp=.o)

.PHONY: all clean

all: clean $(PROGRAM)

$(PROGRAM): $(OBJS)
	$(CC) $(FLAGS) $@ $(OBJS) $(LDLIBS)

$(OBJS): %.o: %.cpp %.hpp
	$(CC) $< -c $(LDLIBS) $(FLAGS) $@

# Execute the program without root access (requires udev rule, check README for details)
run:
	./$(PROGRAM)

# Execute the program with root access
rrun:
	sudo ./$(PROGRAM)

clean:
	rm -f $(PROGRAM) *.o PhotoniQ.log